package com.joinlabs.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.joinlabs.entity.PageBean;
import com.joinlabs.entity.User;

public interface UserMapper {
	int deleteByPrimaryKey(Long userId);

	int insert(User record); //插入用户

	int insertSelective(User record);//插入用户
	
	
	/**
	 * 根据id查找用户
	 * 
	 * @param userId
	 * @return
	 */
	User selectByPrimaryKey(Long userId);

	int updateByPrimaryKeySelective(User record);

	int updateByPrimaryKey(User record);

	User selectByUserAccount(String useraccount); // 根据账号查找用户

	
	List<User> selectAllUsers();//后台查询所有用户

	int selectUserCount();//后台查询总记录

	List<User> selectUsersPage(@Param("page") PageBean pageBean);//后台分页
	
	//通过账号修改密码
	int updatepwd(@Param("userAccount")String userAccount,@Param("userPassword")String userPassword);  


	/**
     * pq
     * 根据id查找用户1关注的人也关注了用户2
     * @param userId
     * @return
     */
	List<User> selectWoGuangZuDeById(@Param("userid1")long userid1, @Param("userid2")long userid2);
	 /**
     * pq
     * 根据id查找用户1与用户2的共同关注
     * @param userId
     * @return
     */
	List<User> selectGongTongById(@Param("userid1")long userid1, @Param("userid2")long userid2);
	 /**
     * pq
     * 根据id查找用户的所有关注
     * @param userId
     * @return
     */
	List<User> selectGZById(@Param("userid")long userid);
	/**
     * pq
     * 根据被查看用户的id查找所有关注该用户的用户
     * @param userId
     * @return
     */
	List<User> selectFansById(@Param("userid")long userid);

	/**
     * pq
     * 通过用户1的id查询用户1是否关注用户2
     * @param userId
     * @return
     */
	List<User> GuangZuStateById(@Param("userid1")long userId, @Param("userid2")long userId2);

	/**
     * pq
     * 通过用户id添加关注
     * @param userId
     * @return
     */
	int AddAttention(@Param("userid1")long userid, @Param("userid2")long userid2);
	/**
     * pq
     * 通过用户id删除关注
     * @param userId
     * @return
     */
	int DeleteAttention(@Param("userid1")long userid, @Param("userid2")long userid2);

	/**
     * pq
     * 通过用户id和组Id查询分组成员
     * @param userId，zuid
     * @return
     */
	List<User> FenZuChengYuanById(@Param("userid")long userid, @Param("zuid")int zuid);
	/**
     * pq
     * 通过用户id查询未分组成员
     * @param userId，zuid
     * @return
     */
	List<User> selectWeiFenZuChengYuanById(@Param("userid")long userid);

	
//	注册时插入用户
	int regiestUser(User user);
	
	//后台拉黑用户
	int updateByUserId(long userId);
	
	int selectBlackUserCount();//后台查询黑名单总记录
	
	List<User> selectBlackUsersPage(@Param("page") PageBean pageBean);//后台黑名单用户分页
	
	User selectUsers(long userId);
	
	List<User> selectAllUser();
	
	//后台拉黑用户
	int updateBlackUserByUserId(long userId);
	
	/**
	 * 模糊查询用户
	 * @param userName
	 * @return
	 */
	List<User> selectSomeUsers(String userName);

	/**
	 * 使当前用户微博数+1
	 * @param userId
	 * @return
	 */
	int updateWeiboNum(long userId);

	
//	List<User> selecGuanzuById2333(@Param("userid1")long userid1,@Param("userid2")long userid2);
	

}

